Several recent advances in the ability to manipulate increasingly complex datasets and execute increasingly complex operations with respect to those datasets have resulted from the ability to provide data-processing services using platforms that can be characterized as multi-stage asynchronous data processing services. Frequently, the stages of such multi-stage asynchronous data processing services operate independently, sometimes on separate data processing systems, and data is passed between the stages over a network. Each stage performs an operation or operations, which frequently result in a conversion of the data, such as a mathematical operation performed on the data items, a format conversion of the data, or an expansion or filtering of the data set. The independence of the different stages provides for high levels of modularity and customization.
Many multi-stage asynchronous data processing services process a specified series of operations through the stages of the service in a process-communicate-queue pattern, in which, once an item is processed through a first stage, the item is transmitted to the next stage for holding until the next stage is ready to perform processing. This ability to move data through multiple stages at the throughput pace of the respective individual stages provides flexibility for the provisioning and operation of the multi-stage asynchronous data processing service.
The advantages of multi-stage asynchronous data processing services in terms of their stage independence, modularity, and flexible operational pacing present obstacles in testing and verification when changes are made to one or more individual stages of the asynchronous multi-stage data processing system. Because the interaction of the individual stages plays a role in determining processing results, a need exists for enhanced tools that allow for longitudinal testing of the entire asynchronous multi-stage data processing system in an end-to-end manner.
While embodiments are described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that the embodiments are not limited to the embodiments or drawings described. It should be understood, that the drawings and detailed description thereto are not intended to limit embodiments to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include”, “including”, and “includes” mean including, but not limited to.